/**
 * 
 */
package com.org.javabody.TimerTask;

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 
 * 方法名称schedule()和scheduleAtFixedRate()两者的区别
<1>schedule()方法更注重保持间隔时间的稳定：保障每隔period时间可调用一次
<2>scheduleAtFixedRate()方法更注重保持执行频率的稳定：
保障多次调用的频率趋近于period时间，如果任务执行时间大于period，会在任务执行之后马上执行下一次任务
 * @author Administrator
 *
 */
public class TimerTaskDemo {
	public static Long count = 0L;
	
	public static void setTimer() {
		TimerTask task = new TimerTask() {
            @Override
            public void run() {
                ++count;
                System.out.println(count+":你是傻逼");  
            }
        };
        
       
        //设置执行时间

        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minue = calendar.get(Calendar.MINUTE);
        //定制第一次执行的时间，

        calendar.set(year, month, day, hour, minue, 00);
        Date date = calendar.getTime();
        Timer timer = new Timer();
        System.out.println(date);
       
        int period = 2 * 1000;
        //第一次执行的date时刻执行task，每隔2秒重复执行
        timer.schedule(task, date, period); //指定第一次执行的时间，然后按照间隔时间，重复执行
        //第一次执行的date时刻执行task, 仅执行一次
        //timer.schedule(task, date);

	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		setTimer();
		
	}


}
